package _2022.hot100._75_颜色分类;

/**
 * @author： YHSimon
 * @date： 2022-04-17 14:52
 */
public class Solution {

    //双指针
    public void sortColors2(int[] nums){
        int n=nums.length;
        int p0=0,p2=nums.length;
        for(int i=0;i<=p2;i++){
            while(i<=p2&&nums[i]==2){
                int tmp=nums[i];
                nums[i]=nums[p2];
                nums[p2]=tmp;
                p2--;
            }
            if(nums[i]==0){
                int tmp=nums[i];
                nums[i]=nums[p0];
                nums[p0]=tmp;
                p0++;
            }
        }
    }
    //单指针 两次遍历
    public void sortColors(int[] nums){
        int n=nums.length;
        int ptr=0;
        for(int i=0;i<n;i++){
            if(nums[i]==0){
                int tmp=nums[i];
                nums[i]=nums[ptr];
                nums[ptr]=tmp;
                ptr++;
            }
        }

        for(int i=0;i<n;i++){
            if(nums[i]==1){
                int tmp=nums[i];
                nums[i]=nums[ptr];
                nums[ptr]=tmp;
                ptr++;
            }
        }

    }
}
